From 2fdede6154b559498c9a5427b894eb506d562103 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Wed, 12 Jul 2006 16:34:39 +0100 Subject: [PATCH] Revert c/s 10651: "prevent double uuid use". Breaks localhost migration, since old and new domains can coexist at same time with same uuid. Possibly this patch could be accepted if xend were to be able to deal with localhost migration (and save/restore, which can also occasionally race). Signed-off-by: Keir Fraser --- tools/python/xen/xend/XendDomain.py | 13 ------------- tools/python/xen/xend/XendDomainInfo.py | 25 ------------------------- 2 files changed, 38 deletions(-) diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 83cb512160..94620c3a9c 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -347,19 +347,6 @@ class XendDomain: self.domains_lock.release() - def domain_lookup_by_uuid_nr(self, uuid): - self.domains_lock.acquire() - try: - matching = filter(lambda d: d.getUuid() == uuid, - self.domains.values()) - n = len(matching) - if n == 1: - return matching[0] - return None - finally: - self.domains_lock.release() - - def privilegedDomain(self): self.domains_lock.acquire() try: diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 5ded5537b3..e9b21c7ce5 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -396,10 +396,6 @@ def domain_by_name(name): return XendDomain.instance().domain_lookup_by_name_nr(name) -def domain_by_uuid(uuid): - return XendDomain.instance().domain_lookup_by_uuid_nr(uuid) - - def shutdown_reason(code): """Get a shutdown reason from a code. @@ -585,7 +581,6 @@ class XendDomainInfo: defaultInfo('security', lambda: None) self.check_name(self.info['name']) - self.check_uuid(self.info['uuid']) if isinstance(self.info['image'], str): self.info['image'] = sxp.from_string(self.info['image']) @@ -783,9 +778,6 @@ class XendDomainInfo: def getName(self): return self.info['name'] - def getUuid(self): - return self.info['uuid'] - def getDomainPath(self): return self.dompath @@ -1215,23 +1207,6 @@ class XendDomainInfo: (name, self.domid, dominfo.domid)) - def check_uuid(self, uuid): - """The same uuid cannot be used for more than one vm at the same time. - - @param uuid: uuid - @raise: VmError if same uuid is used - """ - dominfo = domain_by_uuid(uuid) - if not dominfo: - return - if self.domid is None: - raise VmError("uuid '%s' already in use by domain %d" % - (uuid, dominfo.domid)) - if dominfo.domid != self.domid: - raise VmError("uuid '%s' is used in both domains %d and %d" % - (uuid, self.domid, dominfo.domid)) - - def construct(self): """Construct the domain. -- 2.30.2